\section{Anti-windup}
\label{moderneregulering-antiwindup}
Indføring af integral kontrol introducerer ulinearitet i regulatoren, da integral kontrollen, ved situationer med krav om stor ændring i systemet, kan tvinge inputspændingerne i mætning. Med disse i mætning kan integralleddet vokse voldsomt, hvilket er uhensigtsmæssigt, da det efterfølgende kan tage lang tid før integralleddet bliver tilstrækkeligt reduceret. For at imødekomme denne problemstilling indføres anti-windup til integral kontrollen. 
\begin{figure}[H] %Blokdiagram af anti-windup
\centering
\begin{tikzpicture}[auto, node distance=2cm,>=latex']
% We start by placing the blocks
\coordinate [label = above:$-r$](referenceInput);
\node [sum, node distance = 0.8 cm, right of = referenceInput](referenceSum){};
\node [block, color=orange, right of = referenceSum, node distance = 1 cm](antiProduct){$\prod$};
\node [block, color=green!60!black, right = 0.5 cm, right of = antiProduct, node distance = 1 cm](feedbackInt){$\int$};
\coordinate [below = 1.2 cm, below of = referenceSum](belowReferenceSum);
\node [block, color=green!60!black, right of = feedbackInt, node distance = 1.5 cm](feedbackFi){$F_I$};
\node [sum, right of = feedbackFi, node distance = 1 cm](feedbackSum){};
\coordinate [right = -1 cm, right of = feedbackSum, label = above:$u$](systemU);
\node [block, right of = systemU, node distance = 1 cm](systemSat){\pgftext{\includegraphics[scale=0.15]{billeder/saturation}}};
\coordinate [right = -0.9 cm, right of = systemSat, label = above:$u_\text{sat}$](systemUsat);
\node [sum, below of = systemU, node distance = 1.2 cm](antiSum){};
\coordinate [above = -1.7 cm, above of = antiSum, label = left:\tiny{$+$}];
\coordinate [below = -1.7 cm, below of = antiSum, label = right:\tiny{$-$}];
\coordinate [left = -1.1 cm, left of = antiSum](rightAntiArc);
\coordinate [left = -1.8 cm, left of =rightAntiArc](leftAntiArc);
\node [block, right = 1.5 cm, right of = systemSat, node distance = 1 cm](systemB){$B$};
\node [sum, right of = systemB, node distance = 1 cm](systemSum){};
\node [block, right of = systemSum, node distance = 1 cm](systemInt){$\int$};
\node [block, right of = systemInt, node distance = 1.5 cm](systemC){$C$};
\node [block, below of = systemInt, node distance = 1.2 cm](systemA){$A$};
\coordinate [right = -1 cm, right of = systemC, label = above:$y$](systemY);
\draw [->] (systemInt) -- node[name = systemX]{$x$} (systemC);
\coordinate [below = -0.6 cm, below of = systemX](belowSystemX);
\node [block, color=green!60!black, below of = systemA, node distance = 1.3 cm](feedbackF){$F$};
\node [block, color=orange, left = 0.7 cm, left of = leftAntiArc, node distance = 1 cm](antiSwitch){$Switch$};
% We then draw box
\coordinate [above = -1.2 cm, right = -1.2 cm, above of = systemC, right of = systemC](systemBoxRT);
\coordinate [above = -1.2 cm, left = -1.2 cm, above of = systemB, left of = systemB](systemBoxLT);
\coordinate [below = -0.15 cm, right = -1.2 cm, below of = systemC, right of = systemC](systemBoxRB);
\coordinate [below = -0.15 cm, left = -1.2 cm, below of = systemB, left of = systemB](systemBoxLB);
\draw [dashed, color=cyan] (systemBoxLT) -- (systemBoxRT) -- (systemBoxRB) -- (systemBoxLB) -- (systemBoxLT);
\coordinate [above = -1.8 cm, above of = systemBoxLB, label = right:$\tiny{{\color{cyan}\text{System}}}$];
% We then draw lines
\draw [->, color=green!60!black] (referenceInput) -- (referenceSum);
\draw [->, color=green!60!black] (feedbackInt) --node[color = black]{$x_I$} (feedbackFi);
\draw [->, color=green!60!black] (feedbackFi) -- (feedbackSum);
\draw [->, color=green!60!black] (systemY) |- (belowReferenceSum) -- (referenceSum);
\draw [->, color=green!60!black] (antiProduct) -- (feedbackInt);
\draw [->, color=green!60!black] (referenceSum) -- (antiProduct);
\draw [-] (feedbackSum) -- (systemU);
\draw [->] (systemU) -- (systemSat);
\draw [-] (systemSat) -- (systemUsat);
\draw [->] (systemUsat) -- (systemB);
\draw [->] (systemB) -- (systemSum);
\draw [->] (systemSum) -- (systemInt);
\draw [->] (systemX) |- (belowSystemX) -- (systemA);
\draw [->] (systemA) -| (systemSum);
\draw [-] (systemC) -- (systemY);
\draw [->, color=green!60!black] (belowSystemX) |- (feedbackF);
\draw [->, color=green!60!black] (feedbackF) -| (feedbackSum);
\draw [->, color=orange] (systemU) -- (antiSum);
\draw [->, color=orange] (systemUsat) |- (antiSum);
\draw [-, color=orange] (antiSum) -- (rightAntiArc);
\draw [color = orange] (rightAntiArc) arc (0:180:0.1 cm);
\draw [->, color=orange] (leftAntiArc) -- (antiSwitch);
\draw [->, color=orange] (antiSwitch) -| (antiProduct);
\coordinate [left = -1.5 cm, left of = leftAntiArc, label = above:$u_e$](antiUe);
\coordinate [left = -1 cm, left of = antiSwitch, label = above:$u_s$](antiUe);
\end{tikzpicture}
\caption{Systemdiagram med {\color{green!60!black}tilstandstilbagekobling} samt {\color{orange}anti-windup}.}
\label{fig:moderneregulering-antiwindupdiagram}
\end{figure}
I afsnit \ref{indledendeanalyseafkransystem-doedzone} er de maksimale inputspændinger fundet for begge motorer. Disse spændingsniveauer er indsat i en mætningsboks, som ses på figur \ref{fig:moderneregulering-antiwindupdiagram}.  Forskellen i spændingen før og efter denne mætningsboks findes og kaldes $u_e$. Ved $u_e$ haves et direkte udtryk for, hvorvidt spændingsforsyningen er i mætning, hvilket er tilfældet hvis $u_e \neq 0$. Signalet $u_s$ bestemmes af en switch ifølge formel \eqref{eq:antiwindup-us}.
\begin{IEEEeqnarray}{rcl}
\label{eq:antiwindup-us}
u_s = \left\lbrace
\begin{matrix}
1 & ,u_e = 0 \\
0 & ,u_e \neq 0 
\end{matrix} \right.
\end{IEEEeqnarray}
$u_s$ multipliceres til slut sammen med inputtet til integral kontrollen, hvormed integral kontrollen fungerer uændret når spændingerne ikke er i mætning, men bliver sat ud af spil ved mætning. 
